home *** CD-ROM | disk | FTP | other *** search
/ Programming Windows 95 / Programming Windows 95.iso / code / CHAP12 / COMCTHLP.H next >
Text File  |  1995-12-31  |  23KB  |  539 lines

  1. /*---------------------------------------------------
  2.    COMCTHLP.H -- Helper macros for common controls
  3.                  (c) Paul Yao, 1996
  4.  
  5.    Portions Copyright (c) 1992-1996, Microsoft Corp.
  6.   ---------------------------------------------------*/
  7.  
  8. //-------------------------------------------------------------------
  9. // Hot-Key Helper Macros
  10. //-------------------------------------------------------------------
  11. #define HotKey_SetHotKey(hwnd, bVKHotKey, bfMods) \
  12.     (void)SendMessage((hwnd), HKM_SETHOTKEY, MAKEWORD(bVKHotKey, bfMods), 0L)
  13.  
  14. #define HotKey_GetHotKey(hwnd) \
  15.     (WORD)SendMessage((hwnd), HKM_GETHOTKEY, 0, 0L)
  16.  
  17. #define HotKey_SetRules(hwnd, fwCombInv, fwModInv) \
  18.     (void)SendMessage((hwnd), HKM_SETRULES, (WPARAM) fwCombInv, MAKELPARAM(fwModInv, 0))
  19.  
  20. //-------------------------------------------------------------------
  21. // Progress Bar Helper Macros
  22. //-------------------------------------------------------------------
  23. #define Progress_SetRange(hwnd, nMinRange, nMaxRange) \
  24.     (DWORD)SendMessage((hwnd), PBM_SETRANGE, 0, MAKELPARAM(nMinRange, nMaxRange))
  25.  
  26. #define Progress_SetPos(hwnd, nNewPos) \
  27.     (int)SendMessage((hwnd), PBM_SETPOS, (WPARAM) nNewPos, 0L)
  28.  
  29. #define Progress_DeltaPos(hwnd, nIncrement) \
  30.     (int)SendMessage((hwnd), PBM_DELTAPOS, (WPARAM) nIncrement, 0L)
  31.  
  32. #define Progress_SetStep(hwnd, nStepInc) \
  33.     (int)SendMessage((hwnd), PBM_SETSTEP, (WPARAM) nStepInc, 0L)
  34.  
  35. #define Progress_StepIt(hwnd) \
  36.     (int)SendMessage((hwnd), PBM_STEPIT, 0, 0L)
  37.  
  38. //-------------------------------------------------------------------
  39. // Rich Edit Control Helper Macros
  40. //-------------------------------------------------------------------
  41.  
  42. //---------------- Begin Macros Copied from windowsx.h--------------- 
  43. #define RichEdit_Enable(hwndCtl, fEnable) \
  44.     (BOOL)EnableWindow((hwndCtl), (fEnable))
  45.  
  46. #define RichEdit_GetText(hwndCtl, lpch, cchMax) \
  47.     (int)GetWindowText((hwndCtl), (lpch), (cchMax))
  48.  
  49. #define RichEdit_GetTextLength(hwndCtl) \
  50.     (int)GetWindowTextLength(hwndCtl)
  51.  
  52. #define RichEdit_SetText(hwndCtl, lpsz)  \
  53.     (BOOL)SetWindowText((hwndCtl), (lpsz))
  54.  
  55. #define RichEdit_LimitText(hwndCtl, cchMax) \
  56.     ((void)SendMessage((hwndCtl), EM_LIMITTEXT, (WPARAM)(cchMax), 0L))
  57.  
  58. #define RichEdit_GetLineCount(hwndCtl) \
  59.     ((int)(DWORD)SendMessage((hwndCtl), EM_GETLINECOUNT, 0L, 0L))
  60.  
  61. #define RichEdit_GetLine(hwndCtl, line, lpch, cchMax) \
  62.     ((*((int *)(lpch)) = (cchMax)), ((int)(DWORD)SendMessage((hwndCtl), EM_GETLINE, (WPARAM)(int)(line), (LPARAM)(LPTSTR)(lpch))))
  63.  
  64. #define RichEdit_GetRect(hwndCtl, lprc) \
  65.     ((void)SendMessage((hwndCtl), EM_GETRECT, 0L, (LPARAM)(RECT *)(lprc)))
  66.  
  67. #define RichEdit_SetRect(hwndCtl, lprc) \
  68.     ((void)SendMessage((hwndCtl), EM_SETRECT, 0L, (LPARAM)(const RECT *)(lprc)))
  69.  
  70. #define RichEdit_GetSel(hwndCtl) \
  71.     ((DWORD)SendMessage((hwndCtl), EM_GETSEL, 0L, 0L))
  72.  
  73. #define RichEdit_SetSel(hwndCtl, ichStart, ichEnd) \
  74.     ((void)SendMessage((hwndCtl), EM_SETSEL, (ichStart), (ichEnd)))
  75.  
  76. #define RichEdit_ReplaceSel(hwndCtl, lpszReplace) \
  77.     ((void)SendMessage((hwndCtl), EM_REPLACESEL, 0L, (LPARAM)(LPCTSTR)(lpszReplace)))
  78.  
  79. #define RichEdit_GetModify(hwndCtl) \
  80.     ((BOOL)(DWORD)SendMessage((hwndCtl), EM_GETMODIFY, 0L, 0L))
  81.  
  82. #define RichEdit_SetModify(hwndCtl, fModified) \
  83.     ((void)SendMessage((hwndCtl), EM_SETMODIFY, (WPARAM)(UINT)(fModified), 0L))
  84.  
  85. #define RichEdit_ScrollCaret(hwndCtl) \
  86.     ((BOOL)(DWORD)SendMessage((hwndCtl), EM_SCROLLCARET, 0, 0L))
  87.  
  88. #define RichEdit_LineFromChar(hwndCtl, ich) \
  89.     ((int)(DWORD)SendMessage((hwndCtl), EM_LINEFROMCHAR, (WPARAM)(int)(ich), 0L))
  90.  
  91. #define RichEdit_LineIndex(hwndCtl, line) \
  92.     ((int)(DWORD)SendMessage((hwndCtl), EM_LINEINDEX, (WPARAM)(int)(line), 0L))
  93.  
  94. #define RichEdit_LineLength(hwndCtl, line) \
  95.     ((int)(DWORD)SendMessage((hwndCtl), EM_LINELENGTH, (WPARAM)(int)(line), 0L))
  96.  
  97. #define RichEdit_Scroll(hwndCtl, dv, dh) \
  98.     ((void)SendMessage((hwndCtl), EM_LINESCROLL, (WPARAM)(dh), (LPARAM)(dv)))
  99.  
  100. #define RichEdit_CanUndo(hwndCtl)  \
  101.     ((BOOL)(DWORD)SendMessage((hwndCtl), EM_CANUNDO, 0L, 0L))
  102.  
  103. #define RichEdit_Undo(hwndCtl)  \
  104.     ((BOOL)(DWORD)SendMessage((hwndCtl), EM_UNDO, 0L, 0L))
  105.  
  106. #define RichEdit_EmptyUndoBuffer(hwndCtl) \
  107.     ((void)SendMessage((hwndCtl), EM_EMPTYUNDOBUFFER, 0L, 0L))
  108.  
  109. #define RichEdit_GetFirstVisibleLine(hwndCtl) \
  110.     ((int)(DWORD)SendMessage((hwndCtl), EM_GETFIRSTVISIBLELINE, 0L, 0L))
  111.  
  112. #define RichEdit_SetReadOnly(hwndCtl, fReadOnly) \
  113.     ((BOOL)(DWORD)SendMessage((hwndCtl), EM_SETREADONLY, (WPARAM)(BOOL)(fReadOnly), 0L))
  114.  
  115. #define RichEdit_SetWordBreakProc(hwndCtl, lpfnWordBreak) \
  116.     ((void)SendMessage((hwndCtl), EM_SETWORDBREAKPROC, 0L, (LPARAM)(EDITWORDBREAKPROC)(lpfnWordBreak)))
  117.  
  118. #define RichEdit_GetWordBreakProc(hwndCtl) \
  119.     ((EDITWORDBREAKPROC)SendMessage((hwndCtl), EM_GETWORDBREAKPROC, 0L, 0L))
  120.  
  121. #define RichEdit_CanPaste(hwnd, uFormat) \
  122.     (BOOL)SendMessage((hwnd), EM_CANPASTE, (WPARAM) (UINT) uFormat, 0L) 
  123.  
  124. #define RichEdit_CharFromPos(hwnd, x, y) \
  125.     (DWORD)SendMessage((hwnd), EM_CHARFROMPOS, 0, MAKELPARAM(x, y))
  126.  
  127. #define RichEdit_DisplayBand(hwnd, lprc) \
  128.     (BOOL)SendMessage((hwnd), EM_DISPLAYBAND, 0, (LPARAM) (LPRECT) lprc)
  129.  
  130. #define RichEdit_ExGetSel(hwnd, lpchr) \
  131.     (void)SendMessage((hwnd), EM_EXGETSEL, 0, (LPARAM) (CHARRANGE FAR *) lpchr)
  132.  
  133. #define RichEdit_ExLimitText(hwnd, cchTextMax) \
  134.     (void)SendMessage((hwnd), EM_EXLIMITTEXT, 0, (LPARAM) (DWORD) cchTextMax)
  135.  
  136. #define RichEdit_ExLineFromChar(hwnd, ichCharPos) \
  137.     (int)SendMessage((hwnd), EM_EXLINEFROMCHAR, 0, (LPARAM) (DWORD) ichCharPos)
  138.  
  139. #define RichEdit_ExSetSel(hwnd, ichCharRange) \
  140.     (int)SendMessage((hwnd), EM_EXSETSEL, 0, (LPARAM) (CHARRANGE FAR *) ichCharRange)
  141.  
  142. #define RichEdit_FindText(hwnd, fuFlags, lpFindText) \
  143.     (int)SendMessage((hwnd), EM_FINDTEXT, (WPARAM) (UINT) fuFlags, (LPARAM) (FINDTEXT FAR *) lpFindText)
  144.  
  145. #define RichEdit_FindTextEx(hwnd, fuFlags, lpFindText) \
  146.     (int)SendMessage((hwnd), EM_FINDTEXTEX, (WPARAM) (UINT) fuFlags, (LPARAM) (FINDTEXT FAR *) lpFindText)
  147.  
  148. #define RichEdit_FindWordBreak(hwnd, code, ichStart) \
  149.     (int)SendMessage((hwnd), EM_FINDWORDBREAK, (WPARAM) (UINT) code, (LPARAM) (DWORD) ichStart)
  150.  
  151. #define RichEdit_FormatRange(hwnd, fRender, lpFmt) \
  152.     (int)SendMessage((hwnd), EM_FORMATRANGE, (WPARAM) (BOOL) fRender, (LPARAM) (FORMATRANGE FAR *) lpFmt)
  153.  
  154. #define RichEdit_GetCharFormat(hwnd, fSelection, lpFmt) \
  155.     (DWORD)SendMessage((hwnd), EM_GETCHARFORMAT, (WPARAM) (BOOL) fSelection, (LPARAM) (CHARFORMAT FAR *) lpFmt)
  156.  
  157. #define RichEdit_GetEventMask(hwnd) \
  158.     (DWORD)SendMessage((hwnd), EM_GETEVENTMASK, 0, 0L)
  159.  
  160. #define RichEdit_GetLimitText(hwnd) \
  161.     (int)SendMessage((hwnd), EM_GETLIMITTEXT, 0, 0L)
  162.  
  163. #define RichEdit_GetOleInterface(hwnd, ppObject) \
  164.     (BOOL)SendMessage((hwnd), EM_GETOLEINTERFACE, 0, (LPARAM) (LPVOID FAR *) ppObject)
  165.  
  166. #define RichEdit_GetOptions(hwnd) \
  167.     (UINT)SendMessage((hwnd), EM_GETOPTIONS, 0, 0L)
  168.  
  169. #define RichEdit_GetParaFormat(hwnd, lpFmt) \
  170.     (DWORD)SendMessage((hwnd), EM_GETPARAFORMAT, 0, (LPARAM) (PARAFORMAT FAR *) lpFmt)
  171.  
  172. #define RichEdit_GetSelText(hwnd, lpBuf) \
  173.     (int)SendMessage((hwnd), EM_GETSELTEXT, 0, (LPARAM) (LPSTR) lpBuf)
  174.  
  175. #define RichEdit_GetTextRange(hwnd, lpRange) \
  176.     (int)SendMessage((hwnd), EM_GETTEXTRANGE, 0, (LPARAM) (TEXTRANGE FAR *) lpRange)
  177.  
  178. #define RichEdit_GetWordBreakProcEx(hwnd) \
  179.     (EDITWORDBREAKPROCEX *)SendMessage((hwnd), EM_GETWORDBREAKPROCEX, 0, 0L)
  180. //----------------- End Macros Copied from windowsx.h----------------
  181.  
  182. #define RichEdit_HideSelection(hwnd, fHide, fChangeStyle) \
  183.     (void)SendMessage((hwnd), EM_HIDESELECTION, (WPARAM) (BOOL) fHide, (LPARAM) (BOOL) fChangeStyle)
  184.  
  185. #define RichEdit_PasteSpecial(hwnd, uFormat) \
  186.     (void)SendMessage((hwnd), EM_PASTESPECIAL, (WPARAM) (UINT) uFormat, 0L)
  187.  
  188. #define RichEdit_PosFromChar(hwnd, wCharIndex) \
  189.     (DWORD)SendMessage((hwnd), EM_POSFROMCHAR, (WPARAM)wCharIndex, 0L)
  190.  
  191. #define RichEdit_RequestResize(hwnd) \
  192.     (void)SendMessage((hwnd), EM_REQUESTRESIZE, 0, 0L)
  193.  
  194. #define RichEdit_SelectionType(hwnd) \
  195.     (int)SendMessage((hwnd), EM_SELECTIONTYPE, 0, 0L)
  196.  
  197. #define RichEdit_SetBkgndColor(hwnd, fUseSysColor, clr) \
  198.     (COLORREF)SendMessage((hwnd), EM_SETBKGNDCOLOR, (WPARAM) (BOOL) fUseSysColor, (LPARAM) (COLORREF) clr)
  199.  
  200. #define RichEdit_SetCharFormat(hwnd, uFlags, lpFmt) \
  201.     (BOOL)SendMessage((hwnd), EM_SETCHARFORMAT, (WPARAM) (UINT) uFlags, (LPARAM) (CHARFORMAT FAR *) lpFmt)
  202.  
  203. #define RichEdit_SetEventMask(hwnd, dwMask) \
  204.     (DWORD)SendMessage((hwnd), EM_SETEVENTMASK, 0, (LPARAM) (DWORD) dwMask)
  205.  
  206. #define RichEdit_SetOleCallback(hwnd, lpObj) \
  207.     (BOOL)SendMessage((hwnd), EM_SETOLECALLBACK, 0, (LPARAM) (IRichEditOleCallback FAR *) lpObj)
  208.  
  209. #define RichEdit_SetOptions(hwnd, fOperation, fOptions) \
  210.     (UINT)SendMessage((hwnd), EM_SETOPTIONS, (WPARAM) (UINT) fOperation, (LPARAM) (UINT) fOptions)
  211.  
  212. #define RichEdit_SetParaFormat(hwnd, lpFmt) \
  213.     (BOOL)SendMessage((hwnd), EM_SETPARAFORMAT, 0, (LPARAM) (PARAFORMAT FAR *) lpFmt)
  214.  
  215. #define RichEdit_SetTargetDevice(hwnd, hdcTarget, cxLineWidth) \
  216.     (BOOL)SendMessage((hwnd), EM_SETTARGETDEVICE, (WPARAM) (HDC) hdcTarget, (LPARAM) (int) cxLineWidth)
  217.  
  218. #define RichEdit_SetWordBreakProcEx(hwnd, pfnWordBreakProcEx) \
  219.     (EDITWORDBREAKPROCEX *)SendMessage((hwnd), EM_SETWORDBREAKPROCEX, 0, (LPARAM) (EDITWORDBREAKPROCEX *)pfnWordBreakProcEx)
  220.  
  221. #define RichEdit_StreamIn(hwnd, uFormat, lpStream) \
  222.     (int)SendMessage((hwnd), EM_STREAMIN, (WPARAM) (UINT) uFormat, (LPARAM) (EDITSTREAM FAR *) lpStream)
  223.  
  224. #define RichEdit_StreamOut(hwnd, uFormat, lpStream) \
  225.     (int)SendMessage((hwnd), EM_STREAMOUT, (WPARAM) (UINT) uFormat, (LPARAM) (EDITSTREAM FAR *) lpStream)
  226.  
  227. //-------------------------------------------------------------------
  228. // Status Bar Helper Macros
  229. //-------------------------------------------------------------------
  230. #define Status_GetBorders(hwnd, aBorders) \
  231.     (BOOL)SendMessage((hwnd), SB_GETBORDERS, 0, (LPARAM) (LPINT) aBorders)
  232.  
  233. #define Status_GetParts(hwnd, nParts, aRightCoord) \
  234.     (int)SendMessage((hwnd), SB_GETPARTS, (WPARAM) nParts, (LPARAM) (LPINT) aRightCoord)
  235.  
  236. #define Status_GetRect(hwnd, iPart, lprc) \
  237.     (BOOL)SendMessage((hwnd), SB_GETRECT, (WPARAM) iPart, (LPARAM) (LPRECT) lprc)
  238.  
  239. #define Status_GetText(hwnd, iPart, szText) \
  240.     (DWORD)SendMessage((hwnd), SB_GETTEXT, (WPARAM) iPart, (LPARAM) (LPSTR) szText)
  241.  
  242. #define Status_GetTextLength(hwnd, iPart) \
  243.     (DWORD)SendMessage((hwnd), SB_GETTEXTLENGTH, (WPARAM) iPart, 0L)
  244.  
  245. #define Status_SetMinHeight(hwnd, minHeight) \
  246.     (void)SendMessage((hwnd), SB_SETMINHEIGHT, (WPARAM) minHeight, 0L)
  247.  
  248. #define Status_SetParts(hwnd, nParts, aWidths) \
  249.     (BOOL)SendMessage((hwnd), SB_SETPARTS, (WPARAM) nParts, (LPARAM) (LPINT) aWidths)
  250.  
  251. #define Status_SetText(hwnd, iPart, uType, szText) \
  252.     (BOOL)SendMessage((hwnd), SB_SETTEXT, (WPARAM) (iPart | uType), (LPARAM) (LPSTR) szText)
  253.  
  254. #define Status_Simple(hwnd, fSimple) \
  255.     (BOOL)SendMessage((hwnd), SB_SIMPLE, (WPARAM) (BOOL) fSimple, 0L)
  256.  
  257. //-------------------------------------------------------------------
  258. // Tool Bar Helper Macros
  259. //-------------------------------------------------------------------
  260.  
  261. #define ToolBar_AddBitmap(hwnd, nButtons, lptbab) \
  262.     (int)SendMessage((hwnd), TB_ADDBITMAP, (WPARAM)nButtons, (LPARAM)(LPTBADDBITMAP) lptbab)
  263.  
  264. #define ToolBar_AddButtons(hwnd, uNumButtons, lpButtons) \
  265.     (BOOL)SendMessage((hwnd), TB_ADDBUTTONS, (WPARAM)(UINT)uNumButtons, (LPARAM)(LPTBBUTTON)lpButtons)
  266.  
  267. #define ToolBar_AddString(hwnd, hinst, idString) \
  268.     (int)SendMessage((hwnd), TB_ADDSTRING, (WPARAM)(HINSTANCE)hinst, (LPARAM)idString)
  269.  
  270. #define ToolBar_AutoSize(hwnd) \
  271.     (void)SendMessage((hwnd), TB_AUTOSIZE, 0, 0L)
  272.  
  273. #define ToolBar_ButtonCount(hwnd) \
  274.     (int)SendMessage((hwnd), TB_BUTTONCOUNT, 0, 0L)
  275.  
  276. #define ToolBar_ButtonStructSize(hwnd) \
  277.     (void)SendMessage((hwnd), TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0L)
  278.  
  279. #define ToolBar_ChangeBitmap(hwnd, idButton, iBitmap) \
  280.     (BOOL)SendMessage((hwnd), TB_CHANGEBITMAP, (WPARAM) idButton, (LPARAM)iBitmap);
  281.  
  282. #define ToolBar_CheckButton(hwnd, idButton, fCheck ) \
  283.     (BOOL)SendMessage((hwnd), TB_CHECKBUTTON, (WPARAM) idButton, (LPARAM) MAKELONG(fCheck, 0))
  284.  
  285. #define ToolBar_CommandToIndex(hwnd, idButton) \
  286.     (int)SendMessage((hwnd), TB_COMMANDTOINDEX, (WPARAM) idButton, 0L)
  287.  
  288. #define ToolBar_Customize(hwnd) \
  289.     (void)SendMessage((hwnd), TB_CUSTOMIZE, 0, 0L)
  290.  
  291. #define ToolBar_DeleteButton(hwnd, idButton) \
  292.     (BOOL)SendMessage((hwnd), TB_DELETEBUTTON, (WPARAM) idButton, 0L)
  293.  
  294. #define ToolBar_EnableButton(hwnd, idButton, fEnable ) \
  295.     (BOOL)SendMessage((hwnd), TB_ENABLEBUTTON, (WPARAM) idButton, (LPARAM) MAKELONG(fEnable, 0))
  296.  
  297. #define ToolBar_GetBitmap(hwnd, idButton) \
  298.     (int)SendMessage((hwnd), TB_GETBITMAP, (WPARAM) idButton, 0L)
  299.  
  300. #define ToolBar_GetBitmapFlags(hwnd) \
  301.     (int)SendMessage((hwnd), TB_GETBITMAPFLAGS, 0, 0L)
  302.  
  303. #define ToolBar_GetButton(hwnd, idButton, lpButton) \
  304.     (BOOL)SendMessage((hwnd), TB_GETBUTTON, (WPARAM)idButton, (LPARAM)(LPTBBUTTON) lpButton)
  305.  
  306. #define ToolBar_GetButtonText(hwnd, idButton, lpszText) \
  307.     (int)SendMessage((hwnd), TB_GETBUTTONTEXT, (WPARAM) idButton, (LPARAM)(LPSTR)lpszText)
  308.  
  309. #define ToolBar_GetItemRect(hwnd, idButton, lprc) \
  310.     (BOOL)SendMessage((hwnd), TB_GETITEMRECT, (WPARAM)idButton, (LPARAM)(LPRECT)lprc)
  311.  
  312. #define ToolBar_GetRows(hwnd) \
  313.     (int)SendMessage((hwnd), TB_GETROWS, 0, 0L)
  314.  
  315. #define ToolBar_GetState(hwnd, idButton) \
  316.     (int)SendMessage((hwnd), TB_GETSTATE, (WPARAM) idButton, 0L)
  317.  
  318. #define ToolBar_GetToolTips(hwnd) \
  319.     (HWND)SendMessage((hwnd), TB_GETTOOLTIPS, 0, 0L)
  320.  
  321. #define ToolBar_HideButton(hwnd, idButton, fShow) \
  322.     (BOOL)SendMessage((hwnd), TB_HIDEBUTTON, (WPARAM)idButton, (LPARAM)MAKELONG(fShow, 0))
  323.  
  324. #define ToolBar_Indeterminate(hwnd, idButton, fIndeterminate) \
  325.     (BOOL)SendMessage((hwnd), TB_INDETERMINATE, (WPARAM)idButton, (LPARAM) MAKELONG(fIndeterminate, 0))
  326.  
  327. #define ToolBar_InsertButton(hwnd, idButton, lpButton) \
  328.     (BOOL)SendMessage((hwnd), TB_INSERTBUTTON, (WPARAM)idButton, (LPARAM)(LPTBBUTTON)lpButton)
  329.  
  330. #define ToolBar_IsButtonChecked(hwnd, idButton) \
  331.     (int)SendMessage((hwnd), TB_ISBUTTONCHECKED, (WPARAM)idButton, 0L)
  332.  
  333. #define ToolBar_IsButtonEnabled(hwnd, idButton) \
  334.     (int)SendMessage((hwnd), TB_ISBUTTONENABLED, (WPARAM) idButton, 0L)
  335.  
  336. #define ToolBar_IsButtonHidden(hwnd, idButton) \
  337.     (int)SendMessage((hwnd), TB_ISBUTTONHIDDEN, (WPARAM) idButton, 0L)
  338.  
  339. #define ToolBar_IsButtonIndeterminate(hwnd, idButton) \
  340.     (int)SendMessage((hwnd), TB_ISBUTTONINDETERMINATE, (WPARAM) idButton, 0L)
  341.  
  342. #define ToolBar_IsButtonPressed(hwnd, idButton) \
  343.     (int)SendMessage((hwnd), TB_ISBUTTONPRESSED, (WPARAM) idButton, 0L
  344.  
  345. #define ToolBar_PressButton(hwnd, idButton, fPress) \
  346.     (BOOL)SendMessage((hwnd), TB_PRESSBUTTON, (WPARAM)idButton, (LPARAM)MAKELONG(fPress, 0))
  347.  
  348. #define ToolBar_SaveRestore(hwnd, fSave, ptbsp) \
  349.     (void)SendMessage((hwnd), TB_SAVERESTORE, (WPARAM)(BOOL)fSave, (LPARAM)(TBSAVEPARAMS *)ptbsp)
  350.  
  351. #define ToolBar_SetBitmapSize(hwnd, dxBitmap, dyBitmap) \
  352.     (BOOL)SendMessage((hwnd), TB_SETBITMAPSIZE, 0, (LPARAM)MAKELONG(dxBitmap, dyBitmap))
  353.  
  354. #define ToolBar_SetButtonSize(hwnd, dxBitmap, dyBitmap) \
  355.     (BOOL)SendMessage((hwnd), TB_SETBUTTONSIZE, 0, (LPARAM)MAKELONG(dxBitmap, dyBitmap))
  356.  
  357. #define ToolBar_SetCmdID(hwnd, index, cmdId) \
  358.     (BOOL)SendMessage((hwnd), TB_SETCMDID, (WPARAM)(UINT)index, (WPARAM)(UINT)cmdId)
  359.  
  360. #define ToolBar_SetParent(hwnd, hwndParent) \
  361.     (void)SendMessage((hwnd), TB_SETPARENT, (WPARAM) (HWND) hwndParent, 0L)
  362.  
  363. #define ToolBar_SetRows(hwnd, cRows, fLarger, lprc) \
  364.     (void)SendMessage((hwnd), TB_SETROWS, (WPARAM)MAKEWPARAM(cRows, fLarger),(LPARAM)(LPRECT)lprc)
  365.  
  366. #define ToolBar_SetState(hwnd, idButton, fState) \
  367.     (BOOL)SendMessage((hwnd), TB_SETSTATE, (WPARAM)idButton, (LPARAM)MAKELONG(fState, 0))
  368.  
  369. #define ToolBar_SetToolTips(hwnd) \
  370.     (void)SendMessage((hwnd), TB_SETTOOLTIPS, (WPARAM)(HWND) hwndToolTip, 0L)
  371.  
  372. //-------------------------------------------------------------------
  373. // Tool Tip Helper Macros
  374. //-------------------------------------------------------------------
  375. #define ToolTip_Activate(hwnd, fActivate) \
  376.     (void)SendMessage((hwnd), TTM_ACTIVATE, (WPARAM) (BOOL) fActivate, 0L)
  377.  
  378. #define ToolTip_AddTool(hwnd, lpti) \
  379.     (BOOL)SendMessage((hwnd), TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) lpti)
  380.  
  381. #define ToolTip_DelTool(hwnd, lpti) \
  382.     (void)SendMessage((hwnd), TTM_DELTOOL, 0, (LPARAM) (LPTOOLINFO) lpti)
  383.  
  384. #define ToolTip_EnumTools(hwnd, iTool, lpti) \
  385.     (BOOL)SendMessage((hwnd), TTM_ENUMTOOLS, (WPARAM) (UINT) iTool, (LPARAM) (LPTOOLINFO) lpti)
  386.  
  387. #define ToolTip_GetCurrentTool(hwnd, lpti) \
  388.     (BOOL)SendMessage((hwnd), TTM_GETCURRENTTOOL, 0, (LPARAM) (LPTOOLINFO) lpti)
  389.  
  390. #define ToolTip_GetText(hwnd, lpti) \
  391.     (void)SendMessage((hwnd), TTM_GETTEXT, 0, (LPARAM) (LPTOOLINFO) lpti)
  392.  
  393. #define ToolTip_GetToolCount(hwnd) \
  394.     (int)SendMessage((hwnd), TTM_GETTOOLCOUNT, 0, 0L)
  395.  
  396. #define ToolTip_GetToolInfo(hwnd, lpti) \
  397.     (BOOL)SendMessage((hwnd), TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) lpti)
  398.  
  399. #define ToolTip_HitText(hwnd, lphti) \
  400.     (BOOL)SendMessage((hwnd), TTM_HITTEST, 0, (LPARAM) (LPHITTESTINFO) lphti)
  401.  
  402. #define ToolTip_NewToolRect(hwnd, lpti) \
  403.     (void)SendMessage((hwnd), TTM_NEWTOOLRECT, 0, (LPARAM) (LPTOOLINFO) lpti)
  404.  
  405. #define ToolTip_RelayEvent(hwnd, lpmsg) \
  406.     (void)SendMessage((hwnd), TTM_RELAYEVENT, 0, (LPARAM) (LPMSG) lpmsg)
  407.  
  408. #define ToolTip_SetDelayTime(hwnd, uFlag, iDelay) \
  409.     (void)SendMessage((hwnd), TTM_SETDELAYTIME, (WPARAM) uFlag, (LPARAM) (int) iDelay)
  410.  
  411. #define ToolTip_SetToolInfo(hwnd, lpti) \
  412.     (void)SendMessage((hwnd), TTM_SETTOOLINFO, (LPARAM) (LPTOOLINFO) lpti)
  413.  
  414. #define ToolTip_UpdateTipText(hwnd, lpti) \
  415.     (void)SendMessage((hwnd), TTM_UPDATETIPTEXT, 0, (LPARAM) (LPTOOLINFO) lpti)
  416.  
  417. #define ToolTip_WindowFromPoint(hwnd, lppt) \
  418.     (HWND)SendMessage((hwnd), TTM_WINDOWFROMPOINT, 0, (POINT FAR *) lppt)
  419.  
  420. //-------------------------------------------------------------------
  421. // Track Bar Helper Macros
  422. //-------------------------------------------------------------------
  423. #define TrackBar_ClearSel(hwnd, fRedraw) \
  424.     (void)SendMessage((hwnd), TBM_CLEARSEL, (WPARAM) (BOOL) fRedraw, 0L)
  425.  
  426. #define TrackBar_ClearTics(hwnd, fRedraw) \
  427.     (void)SendMessage((hwnd), TBM_CLEARTICS, (WPARAM) (BOOL) fRedraw, 0L)
  428.  
  429. #define TrackBar_GetChannelRect(hwnd, lprc) \
  430.     (void)SendMessage((hwnd), TBM_GETCHANNELRECT, 0, (LPARAM) (LPRECT) lprc)
  431.  
  432. #define TrackBar_GetLineSize(hwnd) \
  433.     (LONG)SendMessage((hwnd), TBM_GETLINESIZE, 0, 0L)
  434.  
  435. #define TrackBar_GetNumTics(hwnd) \
  436.     (LONG)SendMessage((hwnd), TBM_GETNUMTICS, 0, 0L)
  437.  
  438. #define TrackBar_GetPageSize(hwnd) \
  439.     (LONG)SendMessage((hwnd), TBM_GETPAGESIZE, 0, 0L)
  440.  
  441. #define TrackBar_GetPos(hwnd) \
  442.     (LONG)SendMessage((hwnd), TBM_GETPOS, 0, 0L)
  443.  
  444. #define TrackBar_GetPTics(hwnd) \
  445.     (LPLONG)SendMessage((hwnd), TBM_GETPTICS, 0, 0L)
  446.  
  447. #define TrackBar_GetRangeMax(hwnd) \
  448.     (LONG)SendMessage((hwnd), TBM_GETRANGEMAX, 0, 0L)
  449.  
  450. #define TrackBar_GetRangeMin(hwnd) \
  451.     (LONG)SendMessage((hwnd), TBM_GETRANGEMIN, 0, 0L)
  452.  
  453. #define TrackBar_GetSelEnd(hwnd) \
  454.     (LONG)SendMessage((hwnd), TBM_GETSELEND, 0, 0L)
  455.  
  456. #define TrackBar_GetSelStart(hwnd) \
  457.     (LONG)SendMessage((hwnd), TBM_GETSELSTART, 0, 0L)
  458.  
  459. #define TrackBar_GetThumbLength(hwnd) \
  460.     (UINT)SendMessage((hwnd), TBM_GETTHUMBLENGTH, 0, 0L)
  461.  
  462. #define TrackBar_GetThumbRect(hwnd, lprc) \
  463.     (void)SendMessage((hwnd), TBM_GETTHUMBRECT, 0, (LPARAM) (LPRECT) lprc)
  464.  
  465. #define TrackBar_GetTic(hwnd, iTic) \
  466.     (LONG)SendMessage((hwnd), TBM_GETTIC, (WPARAM) (WORD) iTic, 0L)
  467.  
  468. #define TrackBar_GetTicPos(hwnd, iTic) \
  469.     (LONG)SendMessage((hwnd), TBM_GETTICPOS, (WPARAM) (WORD) iTic, 0L)
  470.  
  471. #define TrackBar_SetLineSize(hwnd, lLineSize) \
  472.     (LONG)SendMessage((hwnd), TBM_SETLINESIZE, 0, (LONG) lLineSize)
  473.  
  474. #define TrackBar_SetPageSize(hwnd, lPageSize) \
  475.     (LONG)SendMessage((hwnd), TBM_SETPAGESIZE, 0, (LONG) lPageSize)
  476.  
  477. #define TrackBar_SetPos(hwnd, bPosition, lPosition) \
  478.     (void)SendMessage((hwnd), TBM_SETPOS, (WPARAM) (BOOL) bPosition, (LPARAM) (LONG) lPosition)
  479.  
  480. #define TrackBar_SetRange(hwnd, bRedraw, lMinimum, lMaximum) \
  481.     (void)SendMessage((hwnd), TBM_SETRANGE, (WPARAM) (BOOL) bRedraw, (LPARAM) MAKELONG(lMinimum, lMaximum))
  482.  
  483. #define TrackBar_SetRangeMax(hwnd, bRedraw, lMaximum) \
  484.     (void)SendMessage((hwnd), TBM_SETRANGEMAX, (WPARAM) bRedraw, (LPARAM) lMaximum)
  485.  
  486. #define TrackBar_SetRangeMin(hwnd, bRedraw, lMinimum) \
  487.     (void)SendMessage((hwnd), TBM_SETRANGEMIN, (WPARAM) bRedraw, (LPARAM) lMinimum)
  488.  
  489. #define TrackBar_SetSel(hwnd, bRedraw, lMinimum, lMaximum) \
  490.     (void)SendMessage((hwnd), TBM_SETSEL, (WPARAM) (BOOL) bRedraw, (LPARAM) MAKELONG(lMinimum, lMaximum))
  491.  
  492. #define TrackBar_SetSelEnd(hwnd, bRedraw, lEnd) \
  493.     (void)SendMessage((hwnd), TBM_SETSELEND, (WPARAM) (BOOL) bRedraw, (LPARAM) (LONG) lEnd)
  494.  
  495. #define TrackBar_SetSelStart(hwnd, bRedraw, lStart) \
  496.     (void)SendMessage((hwnd), TBM_SETSELSTART, (WPARAM) (BOOL) bRedraw, (LPARAM) (LONG) lStart)
  497.  
  498. #define TrackBar_SetThumbLength(hwnd, iLength) \
  499.     (void)SendMessage((hwnd), TBM_SETTHUMBLENGTH, (WPARAM) (UINT) iLength, 0L)
  500.  
  501. #define TrackBar_SetTic(hwnd, lPosition) \
  502.     (BOOL)SendMessage((hwnd), TBM_SETTIC, 0, (LPARAM) (LONG) lPosition)
  503.  
  504. #define TrackBar_SetTicFreq(hwnd, wFreq, lPosition) \
  505.     (void)SendMessage((hwnd), TBM_SETTICFREQ, (WPARAM) wFreq, (LPARAM) (LONG) lPosition)
  506.  
  507. //-------------------------------------------------------------------
  508. // Up / Down Control Helper Macros
  509. //-------------------------------------------------------------------
  510. #define UpDown_GetAccel(hwnd, cAccels, paAccels) \
  511.     (int)SendMessage((hwnd), UDM_GETACCEL, (WPARAM) cAccels, (LPARAM) (LPUDACCEL) paAccels)
  512.  
  513. #define UpDown_GetBase(hwnd) \
  514.     (int)SendMessage((hwnd), UDM_GETBASE, 0, 0L)
  515.  
  516. #define UpDown_GetBuddy(hwnd) \
  517.     (HWND)SendMessage((hwnd), UDM_GETBUDDY, 0, 0L)
  518.  
  519. #define UpDown_GetPos(hwnd) \
  520.     (DWORD)SendMessage((hwnd), UDM_GETPOS, 0, 0L)
  521.  
  522. #define UpDown_GetRange(hwnd) \
  523.     (DWORD)SendMessage((hwnd), UDM_GETRANGE, 0, 0L)
  524.  
  525. #define UpDown_SetAccel(hwnd, nAccels, aAccels) \
  526.     (BOOL)SendMessage((hwnd), UDM_SETACCEL, (WPARAM) nAccels, (LPARAM) (LPUDACCEL) aAccels)
  527.  
  528. #define UpDown_SetBase(hwnd, nBase) \
  529.     (int)SendMessage((hwnd), UDM_SETBASE, (WPARAM) nBase, 0L)
  530.  
  531. #define UpDown_SetBuddy(hwnd, hwndBuddy) \
  532.     (HWND)SendMessage((hwnd), UDM_SETBUDDY, (WPARAM) (HWND) hwndBuddy, 0L)
  533.  
  534. #define UpDown_SetPos(hwnd, nPos) \
  535.     (short)SendMessage((hwnd), UDM_SETPOS, 0, (LPARAM) MAKELONG((short) nPos, 0))
  536.  
  537. #define UpDown_SetRange(hwnd, nUpper, nLower) \
  538.     (void)SendMessage((hwnd), UDM_SETRANGE, 0, (LPARAM) MAKELONG((short) nUpper, (short) nLower))
  539.